package cn.buk.tms.eotms.dto;

import cn.buk.tms.eotms.entity.BillHotelBooking;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.beans.BeanUtils;

import java.util.Date;


/**
 * 输出报表时的酒店订单那内容
 */
public class SettlementReportHotelDto {

	public static SettlementReportHotelDto createdBy(BillHotelBooking o) {
		SettlementReportHotelDto dto = new SettlementReportHotelDto();

		BeanUtils.copyProperties(o, dto);

		dto.setOrderDate(o.getSaleDate());
		dto.setCheckInDate(o.getDdate());
		dto.setCheckOutDate(o.getLeaveDate());

		return dto;
	}

	/**
	 * 销售日期, 订单日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date orderDate;

	/**
	 * 姓名
	 */
	private String passengerName;

	/**
	 * 酒店名称
	 */
	private String hotelName;

	/**
	 * 房型
	 */
	private String roomType;

	private Integer roomCount;

	/**
	 * 入住日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date checkInDate;

	/**
	 * 离店日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date checkOutDate;

	/**
	 * 价格/间夜
	 */
	private double price;

	/**
	 * 服务费
	 */
	private double serviceCharge;

	/**
	 * 间夜数
	 */
	private Integer count;

	/**
	 * 实收客户总额
	 */
	private Double totalAmount;


	public String getPassengerName() {
		return passengerName;
	}

	public void setPassengerName(String passengerName) {
		this.passengerName = passengerName;
	}

	public String getHotelName() {
		return hotelName;
	}

	public void setHotelName(String hotelName) {
		this.hotelName = hotelName;
	}

	public String getRoomType() {
		return roomType;
	}

	public void setRoomType(String roomType) {
		this.roomType = roomType;
	}

	public Integer getRoomCount() {
		return roomCount;
	}

	public void setRoomCount(Integer roomCount) {
		this.roomCount = roomCount;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

	public double getServiceCharge() {
		return serviceCharge;
	}

	public void setServiceCharge(double serviceCharge) {
		this.serviceCharge = serviceCharge;
	}

	public Integer getCount() {
		return count;
	}

	public void setCount(Integer count) {
		this.count = count;
	}

	public Double getTotalAmount() {
		return totalAmount;
	}

	public void setTotalAmount(Double totalAmount) {
		this.totalAmount = totalAmount;
	}

	public Date getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(Date orderDate) {
		this.orderDate = orderDate;
	}

	public Date getCheckInDate() {
		return checkInDate;
	}

	public void setCheckInDate(Date checkInDate) {
		this.checkInDate = checkInDate;
	}

	public Date getCheckOutDate() {
		return checkOutDate;
	}

	public void setCheckOutDate(Date checkOutDate) {
		this.checkOutDate = checkOutDate;
	}
}
